<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>CSS Test: Counter-increment tests</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/">
        <link rel="help" href="http://www.w3.org/TR/CSS21/generate.html#counters">
        <script src="../../../resources/js-test.js"></script>
        <script>
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }
            function run()
            {
                /* These are text versions of the counter-increment-* tests in the CSS 2.1 test suite.
                   So 'test3' here is equivalent to counter-increment-003.htm, and so on. 
                   WebKit dumpAsText versions of counter-increment-001 and 002 already exist in fast/css/counters */
                shouldBe("internals.counterValue(document.getElementById('test3'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test4'))", "'-2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test5'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test6'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test7'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test8'))", "'10'");
                shouldBe("internals.counterValue(document.getElementById('test9'))", "'10'");
                shouldBe("internals.counterValue(document.getElementById('test10'))", "'2147483646'");
                shouldBe("internals.counterValue(document.getElementById('test11'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test12'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test13'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test14'))", "'2'");
                shouldBe("internals.counterValue(document.getElementById('test15'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test16'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test17'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test18'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test19'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test20'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test21'))", "'20'");
                shouldBe("internals.counterValue(document.getElementById('test22'))", "'20'");
                shouldBe("internals.counterValue(document.getElementById('test23'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test24'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test25'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test26'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test27'))", "'3'");
                shouldBe("internals.counterValue(document.getElementById('test28'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test29'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test30'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test31'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test32'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test33'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test34'))", "'30'");
                shouldBe("internals.counterValue(document.getElementById('test35'))", "'30'");
                shouldBe("internals.counterValue(document.getElementById('test36'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test37'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test38'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test39'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test40'))", "'32'");
                shouldBe("internals.counterValue(document.getElementById('test41'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test42'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test43'))", "'-2147483648'");
                shouldBe("internals.counterValue(document.getElementById('test44'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test45'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test46'))", "'0'");
                shouldBe("internals.counterValue(document.getElementById('test47'))", "'320'");
                shouldBe("internals.counterValue(document.getElementById('test48'))", "'320'");
                shouldBe("internals.counterValue(document.getElementById('test49'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test50'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test51'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test52'))", "'2147483647'");
                shouldBe("internals.counterValue(document.getElementById('test53'))", "'5'");
                shouldBe("internals.counterValue(document.getElementById('none53'))", "'5'");
                shouldBe("internals.counterValue(document.getElementById('test53a'))", "'10'");
                shouldBe("internals.counterValue(document.getElementById('wrapper54'))", "'5'");
                shouldBe("internals.counterValue(document.getElementById('test54'))", "'10'");
                shouldBe("internals.counterValue(document.getElementById('test55'))", "'1'");
                shouldBe("internals.counterValue(document.getElementById('test56'))", "'-2147483648'");
                if (window.testRunner)
                    testRunner.notifyDone();
            }
        </script>
        <style type="text/css">
            #test3
            {
                counter-increment: ident3 -2147483648;
            }
            #test3:before
            {
                content: counter(ident3);
            }
            #test4
            {
                counter-increment: ident4 -2147483647;
            }
            #test4:before
            {
                content: counter(ident4);
            }
            #test5
            {
                counter-increment: ident5 -0;
            }
            #test5:before
            {
                content: counter(ident5);
            }
            #test6
            {
                counter-increment: ident6 0;
            }
            #test6:before
            {
                content: counter(ident6);
            }
            #test7
            {
                counter-increment: ident7 +0;
            }
            #test7:before
            {
                content: counter(ident7);
            }
            #test8
            {
                counter-increment: ident8 10;
            }
            #test8:before
            {
                content: counter(ident8);
            }
            #test9
            {
                counter-increment: ident9 +10;
            }
            #test9:before
            {
                content: counter(ident9);
            }
            #test10
            {
                counter-increment: ident10 2147483646;
            }
            #test10:before
            {
                content: counter(ident10);
            }
            #test11
            {
                counter-increment: ident11 2147483647;
            }
            #test11:before
            {
                content: counter(ident11);
            }
            #test12
            {
                counter-increment: ident12 +2147483647;
            }
            #test12:before
            {
                content: counter(ident12);
            }
            #test13
            {
                counter-increment: ident13 2147483648;
            }
            #test13:before
            {
                content: counter(ident13);
            }
            #test14
            {
                counter-increment: ident14 ident14;
            }
            #test14:before
            {
                content: counter(ident14);
            }
            #test15

            {
                counter-increment: ident15 -2147483649 ident15 -2147483649;
            }
            #test15:before
            {
                content: counter(ident15);
            }
            #test16
            {
                counter-increment: ident16 -2147483648 ident16 -2147483648;
            }
            #test16:before
            {
                content: counter(ident16);
            }
            #test17
            {
                counter-increment: ident17 -2147483647 ident17 -2147483647;
            }
            #test17:before
            {
                content: counter(ident17);
            }
            #test18
            {
                counter-increment: ident18 -0 ident18 -0;
            }
            #test18:before
            {
                content: counter(ident18);
            }
            #test19
            {
                counter-increment: ident19 0 ident19 0;
            }
            #test19:before
            {
                content: counter(ident19);
            }
            #test20
            {
                counter-increment: ident20 +0 ident20 +0;
            }
            #test20:before
            {
                content: counter(ident20);
            }
            #test21

            {
                counter-increment: ident21 10 ident21 10;
            }
            #test21:before
            {
                content: counter(ident21);
            }
            #test22
            {
                counter-increment: ident22 +10 ident22 +10;
            }
            #test22:before
            {
                content: counter(ident22);
            }
            #test23
            {
                counter-increment: ident23 2147483646 ident23 2147483646;
            }
            #test23:before
            {
                content: counter(ident23);
            }
            #test24
            {
                counter-increment: ident24 2147483647 ident24 2147483647;
            }
            #test24:before
            {
                content: counter(ident24);
            }
            #test25
            {
                counter-increment: ident25 +2147483647 ident25 +2147483647;
            }
            #test25:before
            {
                content: counter(ident25);
            }
            #test26
            {
                counter-increment: ident26 2147483648 ident26 2147483648;
            }
            #test26:before
            {
                content: counter(ident26);
            }
            #test27
            {
                counter-increment: ident27 ident27 ident27;
            }
            #test27:before
            {
                content: counter(ident27);
            }
            #test28
            {
                counter-increment: ident28 -2147483649 ident28 -2147483649 ident28 -2147483649;
            }
            #test28:before
            {
                content: counter(ident28);
            }
            #test29
            {
                counter-increment: ident29 -2147483648 ident29 -2147483648 ident29 -2147483648;
            }
            #test29:before
            {
                content: counter(ident29);
            }
            #test30
            {
                counter-increment: ident30 -2147483647 ident30 -2147483647 ident30 -2147483647;
            }
            #test30:before
            {
                content: counter(ident30);
            }
            #test31
            {
                counter-increment: ident31 -0 ident31 -0 ident31 -0;
            }
            #test31:before
            {
                content: counter(ident31);
            }
            #test32
            {
                counter-increment: ident32 0 ident32 0 ident32 0;
            }
            #test32:before
            {
                content: counter(ident32);
            }
            #test33
            {
                counter-increment: ident33 +0 ident33 +0 ident33 +0;
            }
            #test33:before
            {
                content: counter(ident33);
            }
            #test34
            {
                counter-increment: ident34 10 ident34 10 ident34 10;
            }
            #test34:before
            {
                content: counter(ident34);
            }
            #test35
            {
                counter-increment: ident35 +10 ident35 +10 ident35 +10;
            }
            #test35:before
            {
                content: counter(ident35);
            }
            #test36
            {
                counter-increment: ident36 2147483646 ident36 2147483646 ident36 2147483646;
            }
            #test36:before
            {
                content: counter(ident36);
            }
            #test37
            {
                counter-increment: ident37 2147483647 ident37 2147483647 ident37 2147483647;
            }
            #test37:before
            {
                content: counter(ident37);
            }
            #test38
            {
                counter-increment: ident38 +2147483647 ident38 +2147483647 ident38 +2147483647;
            }
            #test38:before
            {
                content: counter(ident38);
            }
            #test39
            {
                counter-increment: ident39 2147483648 ident39 2147483648 ident39 2147483648;
            }
            #test39:before
            {
                content: counter(ident39);
            }
            #test40
            {
                counter-increment: ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40 ident40;
            }
            #test40:before
            {
                content: counter(ident40);
            }
            #test41
            {
                counter-increment: ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649 ident41 -2147483649;
            }
            #test41:before
            {
                content: counter(ident41);
            }
            #test42
            {
                counter-increment: ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648 ident42 -2147483648;
            }
            #test42:before
            {
                content: counter(ident42);
            }
            #test43
            {
                counter-increment: ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647 ident43 -2147483647;
            }
            #test43:before
            {
                content: counter(ident43);
            }
            #test44
            {
                counter-increment: ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0 ident44 -0;
            }
            #test44:before
            {
                content: counter(ident44);
            }
            #test45
            {
                counter-increment: ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0 ident45 0;
            }
            #test45:before
            {
                content: counter(ident45);
            }
            #test46
            {
                counter-increment: ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0 ident46 +0;
            }
            #test46:before
            {
                content: counter(ident46);
            }
            #test47
            {
                counter-increment: ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10 ident47 10;
            }
            #test47:before
            {
                content: counter(ident47);
            }
            #test48
            {
                counter-increment: ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10 ident48 +10;
            }
            #test48:before
            {
                content: counter(ident48);
            }
            #test49
            {
                counter-increment: ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646 ident49 2147483646;
            }
            #test49:before
            {
                content: counter(ident49);
            }
            #test50
            {
                counter-increment: ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647 ident50 2147483647;
            }
            #test50:before
            {
                content: counter(ident50);
            }
            #test51
            {
                counter-increment: ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647 ident51 +2147483647;
            }
            #test51:before
            {
                content: counter(ident51);
            }
            #test52
            {
                counter-increment: ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648 ident52 2147483648;
            }
            #test52:before
            {
                content: counter(ident52);
            }
            #test53
            {
                counter-increment: ident53 5;
            }
            #test53a
            {
                counter-increment: ident53 5;
            }
            #none53
            {
                counter-increment: none;
            }
            #none53:before
            {
                content: counter(ident53);
            }
            #test53:before
            {
                content: counter(ident53);
            }
            #test53a:before
            {
                content: counter(ident53);
            }

            #wrapper54 /*test 54*/
            {
                counter-increment: ident54 5;
            }
            #test54
            {
                counter-increment: inherit;
            }
            #test54:before
            {
                content: counter(ident54);
            }
            #wrapper54:before
            {
                content: counter(ident54);
            }

            #test55
            {
                counter-increment: ident55;
            }
            #test55:before
            {
                content: counter(ident55);
            }
            #test56
            {
                counter-increment: ident56 -2147483649;
            }
            #test56:before
            {
                content: counter(ident56);
            }

        </style>
    </head>
    <body onload="setTimeout('run()', 0);">
        <div id="test3"></div>
        <div id="test4"></div>
        <div id="test5"></div>
        <div id="test6"></div>
        <div id="test7"></div>
        <div id="test8"></div>
        <div id="test9"></div>
        <div id="test10"></div>
        <div id="test11"></div>
        <div id="test12"></div>
        <div id="test13"></div>
        <div id="test14"></div>
        <div id="test15"></div>
        <div id="test16"></div>
        <div id="test17"></div>
        <div id="test18"></div>
        <div id="test19"></div>
        <div id="test20"></div>
        <div id="test21"></div>
        <div id="test22"></div>
        <div id="test23"></div>
        <div id="test24"></div>
        <div id="test25"></div>
        <div id="test26"></div>
        <div id="test27"></div>
        <div id="test28"></div>
        <div id="test29"></div>
        <div id="test30"></div>
        <div id="test31"></div>
        <div id="test32"></div>
        <div id="test33"></div>
        <div id="test34"></div>
        <div id="test35"></div>
        <div id="test36"></div>
        <div id="test37"></div>
        <div id="test38"></div>
        <div id="test39"></div>
        <div id="test40"></div>
        <div id="test41"></div>
        <div id="test42"></div>
        <div id="test43"></div>
        <div id="test44"></div>
        <div id="test45"></div>
        <div id="test46"></div>
        <div id="test47"></div>
        <div id="test48"></div>
        <div id="test49"></div>
        <div id="test50"></div>
        <div id="test51"></div>
        <div id="test52"></div>
        <div id="test53"></div>
        <div id="none53"></div>
        <div id="test53a"></div>
        <div id="wrapper54"> 
            <div id="test54"></div>
        </div>
        <div id="test55"></div>
        <div id="test56"></div>
    </body>
</html>